home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / AIncludes / Serial.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  9.4 KB  |  256 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        Serial.a
  3. ;
  4. ;    Contains:    Asynchronous Serial Driver (.AIn/.AOut/.BIn/.BOut) Interfaces
  5. ;
  6. ;    Version:    Technology:    System 7.6+
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__SERIAL__') = 'UNDEFINED' THEN
  18. __SERIAL__ SET 1
  19.  
  20.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  21.     include 'MacTypes.a'
  22.     ENDIF
  23.  
  24.  
  25. baud150                            EQU        763
  26. baud300                            EQU        380
  27. baud600                            EQU        189
  28. baud1200                        EQU        94
  29. baud1800                        EQU        62
  30. baud2400                        EQU        46
  31. baud3600                        EQU        30
  32. baud4800                        EQU        22
  33. baud7200                        EQU        14
  34. baud9600                        EQU        10
  35. baud14400                        EQU        6
  36. baud19200                        EQU        4
  37. baud28800                        EQU        2
  38. baud38400                        EQU        1
  39. baud57600                        EQU        0
  40.  
  41. stop10                            EQU        16384
  42. stop15                            EQU        -32768
  43. stop20                            EQU        -16384
  44.  
  45. noParity                        EQU        0
  46. oddParity                        EQU        4096
  47. evenParity                        EQU        12288
  48.  
  49. data5                            EQU        0
  50. data6                            EQU        2048
  51. data7                            EQU        1024
  52. data8                            EQU        3072
  53.  
  54. aData                            EQU        6                    ; channel A data in or out (historical) 
  55. aCtl                            EQU        2                    ; channel A control (historical) 
  56. bData                            EQU        4                    ; channel B data in or out (historical) 
  57. bCtl                            EQU        0                    ; channel B control (historical) 
  58.  
  59. dsrEvent                        EQU        2                    ; flag for SerShk.evts 
  60. riEvent                            EQU        4                    ; flag for SerShk.evts 
  61. dcdEvent                        EQU        8                    ; flag for SerShk.evts 
  62. ctsEvent                        EQU        32                    ; flag for SerShk.evts 
  63. breakEvent                        EQU        128                    ; flag for SerShk.evts 
  64.  
  65. xOffWasSent                        EQU        128                    ; flag for SerStaRec.xOffSent 
  66. dtrNegated                        EQU        64                    ; flag for SerStaRec.xOffSent 
  67. rtsNegated                        EQU        32                    ; flag for SerStaRec.xOffSent 
  68.  
  69. ainRefNum                        EQU        -6                    ; serial port A input 
  70. aoutRefNum                        EQU        -7                    ; serial port A output 
  71. binRefNum                        EQU        -8                    ; serial port B input 
  72. boutRefNum                        EQU        -9                    ; serial port B output 
  73.  
  74. swOverrunErr                    EQU        1                    ; serial driver error masks 
  75. breakErr                        EQU        8                    ; serial driver error masks 
  76. parityErr                        EQU        16                    ; serial driver error masks 
  77. hwOverrunErr                    EQU        32                    ; serial driver error masks 
  78. framingErr                        EQU        64                    ; serial driver error masks 
  79.  
  80. kOptionPreserveDTR                EQU        128                    ; option bit used with Control code 16 
  81. kOptionClockX1CTS                EQU        64                    ; option bit used with Control code 16 
  82.  
  83. kUseCTSOutputFlowControl        EQU        128                    ; flag for SerShk.fCTS 
  84. kUseDSROutputFlowControl        EQU        64                    ; flag for SerShk.fCTS 
  85. kUseRTSInputFlowControl            EQU        128                    ; flag for SerShk.fDTR 
  86. kUseDTRInputFlowControl            EQU        64                    ; flag for SerShk.fDTR 
  87.  
  88. sPortA                            EQU        0                    ; Macintosh modem port 
  89. sPortB                            EQU        1                    ; Macintosh printer port 
  90. sCOM1                            EQU        2                    ; RS-232 port COM1 
  91. sCOM2                            EQU        3                    ; RS-232 port COM2 
  92. ; typedef SInt8                         SPortSel
  93.  
  94. ;  csCodes for serial driver Control routines 
  95.  
  96. kSERDConfiguration                EQU        8                    ; program port speed, bits/char, parity, and stop bits 
  97. kSERDInputBuffer                EQU        9                    ; set buffer for chars received with no read pending 
  98. kSERDSerHShake                    EQU        10                    ; equivalent to SerHShake, largely obsolete 
  99. kSERDClearBreak                    EQU        11                    ; assert break signal on output 
  100. kSERDSetBreak                    EQU        12                    ; negate break state on output 
  101. kSERDBaudRate                    EQU        13                    ; set explicit baud rate, other settings unchanged 
  102. kSERDHandshake                    EQU        14                    ; superset of 10, honors setting of fDTR 
  103. kSERDClockMIDI                    EQU        15                    ; clock externally on CTS with specified multiplier 
  104. kSERDMiscOptions                EQU        16                    ; select clock source and DTR behavior on close 
  105. kSERDAssertDTR                    EQU        17                    ; assert DTR output 
  106. kSERDNegateDTR                    EQU        18                    ; negate DTR output 
  107. kSERDSetPEChar                    EQU        19                    ; select char to replace chars with invalid parity 
  108. kSERDSetPEAltChar                EQU        20                    ; select char to replace char that replaces chars with invalid parity 
  109. kSERDSetXOffFlag                EQU        21                    ; set XOff output flow control (same as receiving XOff) 
  110. kSERDClearXOffFlag                EQU        22                    ; clear XOff output flow control (same as receiving XOn) 
  111. kSERDSendXOn                    EQU        23                    ; send XOn if input flow control state is XOff 
  112. kSERDSendXOnOut                    EQU        24                    ; send XOn regardless of input flow control state 
  113. kSERDSendXOff                    EQU        25                    ; send XOff if input flow control state is XOn 
  114. kSERDSendXOffOut                EQU        26                    ; send XOff regardless of input flow control state 
  115. kSERDResetChannel                EQU        27                    ; reset serial I/O channel hardware 
  116. kSERDHandshakeRS232                EQU        28                    ; extension of 14, allows full RS-232 hardware handshaking 
  117. kSERDStickParity                EQU        29                    ; use mark/space parity 
  118. kSERDAssertRTS                    EQU        30                    ; assert RTS output 
  119. kSERDNegateRTS                    EQU        31                    ; negate RTS output 
  120. kSERD115KBaud                    EQU        115                    ; set 115.2K baud data rate 
  121. kSERD230KBaud                    EQU        230                    ; set 230.4K baud data rate 
  122.  
  123. ;  csCodes for serial driver Status routines 
  124.  
  125. kSERDInputCount                    EQU        2                    ; return characters available (SerGetBuf) 
  126. kSERDStatus                        EQU        8                    ; return characters available (SerStatus) 
  127. kSERDVersion                    EQU        9                    ; return version number in first byte of csParam 
  128. kSERDGetDCD                        EQU        256                    ; get instantaneous state of DCD (GPi) 
  129.  
  130. SerShk                    RECORD 0
  131. fXOn                     ds.b    1                ; offset: $0 (0)        ;  XOn/XOff output flow control flag 
  132. fCTS                     ds.b    1                ; offset: $1 (1)        ;  hardware output flow control flags 
  133. xOn                         ds.b    1                ; offset: $2 (2)        ;  XOn character 
  134. xOff                     ds.b    1                ; offset: $3 (3)        ;  XOff character 
  135. errs                     ds.b    1                ; offset: $4 (4)        ;  errors mask bits 
  136. evts                     ds.b    1                ; offset: $5 (5)        ;  event enable mask bits 
  137. fInX                     ds.b    1                ; offset: $6 (6)        ;  XOn/XOff input flow control flag 
  138. fDTR                     ds.b    1                ; offset: $7 (7)        ;  hardware input flow control flags 
  139. sizeof                     EQU *                    ; size:   $8 (8)
  140.                         ENDR
  141. SerStaRec                RECORD 0
  142. cumErrs                     ds.b    1                ; offset: $0 (0)        ;  errors accumulated since last SerStatus() call 
  143. xOffSent                 ds.b    1                ; offset: $1 (1)        ;  input (requested to be) held off by xOffWasSent or dtrNegated or rtsNegated 
  144. rdPend                     ds.b    1                ; offset: $2 (2)        ;  incomplete read pending in I/O queue 
  145. wrPend                     ds.b    1                ; offset: $3 (3)        ;  incomplete write pending in I/O queue 
  146. ctsHold                     ds.b    1                ; offset: $4 (4)        ;  transmit disabled by hardware handshaking 
  147. xOffHold                 ds.b    1                ; offset: $5 (5)        ;  transmit disabled by XOn/XOff handshaking 
  148. dsrHold                     ds.b    1                ; offset: $6 (6)        ;  transmit disabled: external device not ready 
  149. modemStatus                 ds.b    1                ; offset: $7 (7)        ;  reports modem status according to SerShk.evts 
  150. sizeof                     EQU *                    ; size:   $8 (8)
  151.                         ENDR
  152.     IF OLDROUTINENAMES THEN
  153. ;  ********************************************************************************************* 
  154. ;  The following constant names have been retired in favor of standard, more descriptive names.  
  155. ;  You can still compile old code by defining OLDROUTINENAMES. There were several constants that 
  156. ;  were formerly available that have been removed, as they are now regarded as either private or 
  157. ;  unsupported. We advise that you stop using any constants that are not defined in this file.   
  158. ;  ********************************************************************************************* 
  159.  
  160. serdOptionClockExternal            EQU        64                    ; option bit used with Control code 16 
  161. serdOptionPreserveDTR            EQU        128                    ; option bit used with Control code 16 
  162. ;  csCodes for serial driver Control routines 
  163.  
  164. serdReset                        EQU        8
  165. serdSetBuf                        EQU        9
  166. serdHShake                        EQU        10
  167. serdClrBrk                        EQU        11
  168. serdSetBrk                        EQU        12
  169. serdSetBaud                        EQU        13
  170. serdHShakeDTR                    EQU        14
  171. serdSetMIDI                        EQU        15
  172. serdSetMisc                        EQU        16
  173. serdSetDTR                        EQU        17
  174. serdClrDTR                        EQU        18
  175. serdSetPEChar                    EQU        19
  176. serdSetPECharAlternate            EQU        20
  177. serdSetXOff                        EQU        21
  178. serdClrXOff                        EQU        22
  179. serdSendXOnConditional            EQU        23
  180. serdSendXOn                        EQU        24
  181. serdSendXOffConditional            EQU        25
  182. serdSendXOff                    EQU        26
  183. serdChannelReset                EQU        27
  184. serdSet230KBaud                    EQU        230                    ; set 230K baud data rate 
  185.  
  186. ;  csCodes for serial driver Status routines 
  187.  
  188. serdGetBuf                        EQU        2
  189. serdStatus                        EQU        8
  190. serdGetVers                        EQU        9
  191.     ENDIF    ; OLDROUTINENAMES
  192. ;    The following interfaces are for the legacy high-level serial driver glue in
  193. ;    the interface libraries of your development system. They merely substitue for
  194. ;    the corresponding synchronous calls to PBControl and PBStatus.
  195. ;
  196. ;    They have not been updated as the serial driver API has evolved. Take note:
  197. ;
  198. ;        SerHShake does not support hardware input flow control. Use csCode 14.
  199. ;        SerStatus returns only the first six bytes of SerStaRec (through xOffHold).
  200. ;
  201.  
  202. ;
  203. ; pascal OSErr SerReset(short refNum, short serConfig)
  204. ;
  205.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  206.         IMPORT_CFM_FUNCTION SerReset
  207.     ENDIF
  208.  
  209. ;
  210. ; pascal OSErr SerSetBuf(short refNum, Ptr serBPtr, short serBLen)
  211. ;
  212.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  213.         IMPORT_CFM_FUNCTION SerSetBuf
  214.     ENDIF
  215.  
  216. ;
  217. ; pascal OSErr SerHShake(short refNum, const SerShk *flags)
  218. ;
  219.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  220.         IMPORT_CFM_FUNCTION SerHShake
  221.     ENDIF
  222.  
  223. ;
  224. ; pascal OSErr SerSetBrk(short refNum)
  225. ;
  226.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  227.         IMPORT_CFM_FUNCTION SerSetBrk
  228.     ENDIF
  229.  
  230. ;
  231. ; pascal OSErr SerClrBrk(short refNum)
  232. ;
  233.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  234.         IMPORT_CFM_FUNCTION SerClrBrk
  235.     ENDIF
  236.  
  237. ;
  238. ; pascal OSErr SerGetBuf(short refNum, long *count)
  239. ;
  240.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  241.         IMPORT_CFM_FUNCTION SerGetBuf
  242.     ENDIF
  243.  
  244. ;
  245. ; pascal OSErr SerStatus(short refNum, SerStaRec *serSta)
  246. ;
  247.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  248.         IMPORT_CFM_FUNCTION SerStatus
  249.     ENDIF
  250.  
  251.  
  252.  
  253.     ENDIF ; __SERIAL__ 
  254.  
  255.